import request from '@/utils/request'

// 查询考勤记录列表
export function listAttendancerecord(query) {
  return request({
    url: '/stuinfo/attendancerecord/list',
    method: 'get',
    params: query
  })
}

// 查询考勤记录详细
export function getAttendancerecord(recordId) {
  return request({
    url: '/stuinfo/attendancerecord/' + recordId,
    method: 'get'
  })
}

// 新增考勤记录
export function addAttendancerecord(data) {
  return request({
    url: '/stuinfo/attendancerecord',
    method: 'post',
    data: data
  })
}

// 修改考勤记录
export function updateAttendancerecord(data) {
  return request({
    url: '/stuinfo/attendancerecord',
    method: 'put',
    data: data
  })
}

// 删除考勤记录
export function delAttendancerecord(recordId) {
  return request({
    url: '/stuinfo/attendancerecord/' + recordId,
    method: 'delete'
  })
}

// export function getDormitoryStats(date) {
//   return request({
//     url: '/stuinfo/attendancerecord/stats',
//     method: 'get',
//     // params: { date }
//   })
// }
export function getDormitoryStats() {
  return request({
    url: '/stuinfo/attendancerecord/stats',
    method: 'get',
    // 添加响应拦截器处理数据
    transformResponse: [function(data) {
      // 打印原始响应数据
      console.log('原始响应数据:', data);
      
      try {
        const parsed = JSON.parse(data);
        // 确保返回的数据结构正确
        return {
          normal: parsed.normal || 0,
          late: parsed.late || 0,
          absent: parsed.absent || 0
        };
      } catch (e) {
        console.error('解析响应数据失败:', e);
        return {
          normal: 0,
          late: 0,
          absent: 0
        };
      }
    }]
  })
}

export function getAbnormalStudents(params) {
  return request({
    url: '/stuinfo/attendancerecord/abnormal-list',
    method: 'get',
    params: params,
    transformResponse: [function(data) {
      try {
        const parsed = typeof data === 'string' ? JSON.parse(data) : data
        console.log('API原始响应:', parsed) // 调试日志
        
        // 处理不同响应结构
        if (parsed.list) {
          return {
            list: parsed.list.filter(item => item !== null), // 过滤null值
            total: parsed.total || 0,
            pageNum: parsed.pageNum || 1,
            pageSize: parsed.pageSize || 10
          }
        }
        
        // 如果是统一封装结构
        if (parsed.data && parsed.data.list) {
          return {
            list: parsed.data.list.filter(item => item !== null),
            total: parsed.data.total || 0,
            pageNum: parsed.data.pageNum || 1,
            pageSize: parsed.data.pageSize || 10
          }
        }
        
        throw new Error('未知的响应结构')
      } catch (e) {
        console.error('解析响应失败:', e)
        return {
          list: [],
          total: 0,
          pageNum: 1,
          pageSize: params.pageSize || 10
        }
      }
    }]
  })
}